///******************************************************************************* // * Copyright (c) 2000, 2006 IBM Corporation and others. // * All rights reserved. This program and the accompanying materials // * are made available under the terms of the Eclipse Public License v1.0 // * which accompanies this distribution, and is available at // * http://www.eclipse.org/legal/epl-v10.html // * // * Contributors: // * IBM Corporation - initial API and implementation // *******************************************************************************/ //package org.eclipse.ui.tests.multipageeditor; // //import java.io.ByteArrayInputStream; // //import org.eclipse.core.resources.IFile; //import org.eclipse.core.resources.IProject; //import org.eclipse.core.resources.IWorkspace; //import org.eclipse.core.resources.ResourcesPlugin; //import org.eclipse.core.runtime.CoreException; //import org.eclipse.swt.widgets.Display; //import org.eclipse.ui.IEditorInput; //import org.eclipse.ui.IEditorPart; //import org.eclipse.ui.IWorkbenchPage; //import org.eclipse.ui.IWorkbenchWindow; //import org.eclipse.ui.commands.ICommandManager; //import org.eclipse.ui.commands.IWorkbenchCommandSupport; //import org.eclipse.ui.keys.KeySequence; //import org.eclipse.ui.keys.ParseException; //import org.eclipse.ui.part.FileEditorInput; //import org.eclipse.ui.tests.harness.util.UITestCase; // ///** // * Tests that key bindings are treated correctly in a multi-page editor. This // * ensures that key bindings are switched at the granularity of a page in a // * multi-page editor. See Bug 37612 for references. // * // * @since 3.0 // */ //public class MultiPageKeyBindingTest extends UITestCase { // // /** // * Constructs a new instance of <code>MultiPageKeyBindingTest</code>. // * // * @param name // * The name of the test to be run. // */ // public MultiPageKeyBindingTest(String name) { // super(name); // } // // /** // * Tests that the key bindings are updated when the page is switched in a // * multi-page editor part. // * // * @throws CoreException // * If the project or file cannot be created. // * @throws ParseException // * The expected key sequence cannot be parsed. // */ // public void testSwitch() throws CoreException, ParseException { // final String extension = "multi"; //$NON-NLS-1$ // final String fileName = "A." + extension; //$NON-NLS-1$ // // // Open a new test window. // IWorkbenchWindow window = openTestWindow(); // // // Create a blurb file. // IWorkbenchPage page = window.getActivePage(); // IWorkspace workspace = ResourcesPlugin.getWorkspace(); // IProject testProject = workspace.getRoot().getProject( // "MultiPageKeyBindingTest Project"); //$NON-NLS-1$ // testProject.create(null); // testProject.open(null); // IFile multiFile = testProject.getFile(fileName); // multiFile.create(new ByteArrayInputStream(new byte[0]), true, null); // // // Open a blurb file. // IEditorInput editorInput = new FileEditorInput(multiFile); // IEditorPart editorPart = page.openEditor(editorInput, // "org.eclipse.ui.tests.multipageeditor.TestMultiPageEditor"); //$NON-NLS-1$ // TestMultiPageEditor multiPageEditorPart = (TestMultiPageEditor) editorPart; // // // Switch to the second tab // window.getShell().forceActive(); // Display display = Display.getCurrent(); // while (display.readAndDispatch()) // ; // multiPageEditorPart.setPage(1); // // // Check that "Ctrl+Shift+5" is the bound key. // IWorkbenchCommandSupport commandSupport = window.getWorkbench() // .getCommandSupport(); // ICommandManager commandManager = commandSupport.getCommandManager(); // KeySequence expectedKeyBinding = KeySequence // .getInstance("Ctrl+Shift+5"); //$NON-NLS-1$ // String commandId = commandManager.getPerfectMatch(expectedKeyBinding); // assertEquals("org.eclipse.ui.tests.TestCommandId", commandId); //$NON-NLS-1$ // } //}